#!/usr/bin/env python
#-*-coding:utf-8-*- 

import pandas
import datetime
import os
import numpy as np

#####################可配置变量##########################################
# 使用前请配置
# 搜索文件夹路径
# path = r'D:/人力资料/' 
# 搜索文件前缀和后缀
input_file_name_prefix = 'FL01.202' #前缀
input_file_name_suffix = '社保公积金记账表.xls' #后缀
input_file_sheet = '明细表' # 表格页名称
# 需要合并数据后写入的目标文件
target_file_name  = '社保公积金明细表-2021.xlsx'  #需要读取的文件，在此文件追加行
target_file_name_prefix = os.path.splitext(target_file_name)[0] #输出的文件前缀

#######################################################################

# 全局变量
debug_mode = 0
fl_file_num = 0

target_df = pandas.read_excel(target_file_name)

# 检查是否配置搜索制定路径
if 'path' in dir():
    print('find file on path:', path)
else:
    path = os.getcwd()
    print('find file on path:', path)

# 按照文件名称查找文件    
for filename in os.listdir(path):
    # 检查搜索的文件名
    if(filename.rfind(input_file_name_prefix)==0 and filename.rfind(input_file_name_suffix)>0):
        # 读取找到的文件
        input_file_name = filename
        print('find input file: ', input_file_name)
        fl_file_num = fl_file_num +1
        input_df = pandas.read_excel(input_file_name, input_file_sheet) 
        input_row_num = input_df.shape[0]
        
        # 取合计的上一行作为左后一行
        end = input_df['机构'].values == '合计'
        input_end_row_num = np.flatnonzero(end)
        
        # 读取合计以上的数据
        source_df = input_df.loc[1:input_end_row_num[0]-1,:]

        if debug_mode == 1:
            print(input_df)
            print(input_df.index)
            print(input_df.columns)
            print(input_row_num)
        
        # 追加数据
        output_df = target_df.append(source_df)
        target_df = output_df

# 检查读取的总文件夹
if fl_file_num > 0:
    print('all ', fl_file_num, 'files found!')
else:
    print('No file found!')       

# 写入文件，去除首列序号    
output_file_name = target_file_name_prefix + datetime.datetime.now().strftime("-%m-%d-%H-%M-%S")+'.xls'
print('write to file: ', output_file_name)
output_df.to_excel(output_file_name, sheet_name='2021', index=False)